<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
	xmlns:h="http://xmlns.jcp.org/jsf/html"
	xmlns:f="http://xmlns.jcp.org/jsf/core"
	xmlns:p="http://primefaces.org/ui">

<ui:composition template="/template.xhtml">
	<ui:define name="title">
		SGMF :: Motorista
	</ui:define>
	
	<ui:define name="content">
		<p:panel>
			<h:form id="buscarVeiculoForm">
				<p:fieldset legend="Buscar Veículo">
					<p:panelGrid columns="3" styleClass="borderless">
						<p:outputLabel value="Placa do Veículo" for="placaVeiculo" />
						<p:inputText id="placaVeiculo" value="#{motoristaBean.placaVeiculo}" />
						<p:commandButton id="buscarVeiculo" update=":veiculoDialogForm" actionListener="#{motoristaBean.buscarVeiculo}" value="Buscar Veículo" icon="ui-icon-search" onclick="PF('veiculoDialog').show();" />
					</p:panelGrid>
				</p:fieldset>
			</h:form>
			<br />
			<h:form id="motoristaForm">
				<h:inputHidden id="motoristaId" value="#{motoristaBean.motorista.id}" rendered="#{motoristaBean.motorista.id != null}" />
				<h:inputHidden id="enderecoId" value="#{motoristaBean.endereco.id}" rendered="#{motoristaBean.endereco.id != null}" />
				<p:fieldset legend="Motorista">
					<p:panelGrid columns="3" styleClass="borderless">
						<p:outputLabel value="Matrícula" for="matricula" />
						<p:inputText id="matricula" label="Matrícula" value="#{motoristaBean.motorista.matricula}" required="true" maxlength="6" size="50" />
						<p:message for="matricula" />
						<p:outputLabel value="Nome" for="nome" />
						<p:inputText id="nome" label="Nome" value="#{motoristaBean.motorista.nome}" required="true" maxlength="50" size="50" />
						<p:message for="nome" />
						<p:outputLabel value="CPF" for="cpf" />
						<p:inputMask id="cpf" label="CPF" value="#{motoristaBean.motorista.cpf}" required="true" mask="999.999.999-99" size="50">
							<f:validator binding="#{cpfValidator}" />
						</p:inputMask>
						<p:message for="cpf" />
						<p:outputLabel value="CNH" for="cnh" />
						<p:inputMask id="cnh" label="CNH" value="#{motoristaBean.motorista.cnh}" required="true"  mask="99999999999" size="50" />
						<p:message for="cnh" />
						<p:outputLabel value="Função" for="funcao" />
						<p:selectOneMenu id="funcao" value="#{motoristaBean.motorista.funcao}" required="true" converter="#{funcaoConverter}">
							<f:selectItems value="#{motoristaBean.funcaoService.findAll()}" var="funcao" itemValue="#{funcao}" itemLabel="#{funcao.nome}" />
						</p:selectOneMenu>
						<p:message for="funcao" />
						<p:outputLabel value="Setor" for="setor" />
						<p:selectOneMenu id="setor" value="#{motoristaBean.motorista.setor}" required="true" converter="#{setorConverter}">
							<f:selectItems value="#{motoristaBean.setorService.findAll()}" var="setor" itemValue="#{setor}" itemLabel="#{setor.nome}" />
						</p:selectOneMenu>
						<p:message for="setor" />
					</p:panelGrid>
				</p:fieldset>
				<br />
				<p:fieldset legend="Endereço">
					<p:panelGrid columns="3" styleClass="borderless">
						<p:outputLabel value="CEP" for="cep" />
						<p:inputMask id="cep" label="CEP" value="#{motoristaBean.endereco.cep}" required="true" mask="99.999-999" size="50" />
						<p:message for="cep" />
						<p:outputLabel value="Estado" for="estado" />
						<p:selectOneMenu id="estado" value="#{motoristaBean.endereco.estado}" required="true">
							<f:selectItems value="#{motoristaBean.estados}" var="estado" itemValue="#{setor}" itemLabel="#{estado}" />
						</p:selectOneMenu>
						<p:message for="estado" />
						<p:outputLabel value="Cidade" for="cidade" />
						<p:inputText id="cidade" label="Cidade" value="#{motoristaBean.endereco.cidade}" required="true" maxlength="50" size="50" />
						<p:message for="cidade" />
						<p:outputLabel value="Bairro" for="bairro" />
						<p:inputText id="bairro" label="Bairro" value="#{motoristaBean.endereco.bairro}" required="true" maxlength="50" size="50" />
						<p:message for="bairro" />
						<p:outputLabel value="Logradouro" for="logradouro" />
						<p:inputText id="logradouro" label="Logradouro" value="#{motoristaBean.endereco.logradouro}" required="true" maxlength="50" size="50" />
						<p:message for="logradouro" />
						<p:outputLabel value="Número" for="numero" />
						<p:inputText id="numero" label="Número" value="#{motoristaBean.endereco.numero}" required="true" maxlength="6" size="50">
							<f:convertNumber integerOnly="true" />
						</p:inputText>
						<p:message for="numero" />
						<p:outputLabel value="Complemento" for="complemento" />
						<p:inputText id="complemento" label="Complemento" value="#{motoristaBean.endereco.complemento}" required="true" maxlength="50" size="50" />
						<p:message for="complemento" />
					</p:panelGrid>
				</p:fieldset>
				<br />
				<p:fieldset legend="Vínculo">
					<p:panelGrid columns="3" styleClass="borderless">
						<p:outputLabel value="Veículo" for="veiculo" />
						<p:inputText id="veiculo" label="Veículo" value="#{motoristaBean.veiculo.placa}" required="true" disabled="true" />
						<p:message for="veiculo" />
						<p:outputLabel value="Hora Entrada" for="entrada" />
						<p:calendar id="entrada" value="#{motoristaBean.entrada}" pattern="HH:mm" timeOnly="true" required="true" />
						<p:message for="entrada" />
						<p:outputLabel value="Hora Saída" for="saida" />
						<p:calendar id="saida" value="#{motoristaBean.saida}" pattern="HH:mm" timeOnly="true" required="true" />
						<p:message for="saida" />
					</p:panelGrid>
				</p:fieldset>
				<br />
				<p:commandButton id="salvar" value="Salvar"	action="#{motoristaBean.salvar}" update=":growl, :motoristaForm, :datatableForm" icon="ui-icon-disk" />
				<p:commandButton id="novo" value="Novo"	actionListener="#{motoristaBean.novo}" process="@this" update=":motoristaForm" icon="ui-icon-document" />
			</h:form>
			<br />
			<h:form id="datatableForm">
				<p:dataTable id="datatable" var="motorista"
					value="#{motoristaBean.motoristaService.findAll()}" rows="5" paginator="true"
					paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
					currentPageReportTemplate="({currentPage} de {totalPages})" rowsPerPageTemplate="10, 15, 20" emptyMessage="Nenhum registro encontrado.">
					<p:column headerText="Matrícula">
						<h:outputText value="#{motorista.matricula}" />
					</p:column>
					<p:column headerText="CPF">
						<h:outputText value="#{motorista.cpf}" />
					</p:column>
					<p:column headerText="Nome">
						<h:outputText value="#{motorista.nome}" />
					</p:column>
					<p:column headerText="CNH">
						<h:outputText value="#{motorista.cnh}" />
					</p:column>
					<p:column headerText="Função">
						<h:outputText value="#{motorista.funcao.nome}" />
					</p:column>
					<p:column headerText="Setor">
						<h:outputText value="#{motorista.setor.nome}" />
					</p:column>
					<p:column style="width: 32px;">
						<p:commandButton icon="ui-icon-pencil" title="Editar" actionListener="#{motoristaBean.editar(motorista)}" update=":motoristaForm" />
					</p:column>
					<p:column style="width: 32px;">
						<p:commandButton icon="ui-icon-trash" title="Excluir" actionListener="#{motoristaBean.excluir(motorista)}" update=":growl, :motoristaForm, :datatableForm">
							<p:confirm header="Confirmação" message="Deseja realmente excluir este motorista" icon="ui-icon-alert" />
						</p:commandButton>
					</p:column>
				</p:dataTable>
			</h:form>
		</p:panel>
		
		<p:dialog id="veiculoDialog" header="Veículos" widgetVar="veiculoDialog" modal="true" resizable="false" width="800px">
			<h:form id="veiculoDialogForm">
				<p:dataTable id="veiculoDialogTable" var="veiculo"
					value="#{motoristaBean.veiculos}" rows="5" paginator="true"
					paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink}"
					currentPageReportTemplate="({currentPage} de {totalPages})"
					emptyMessage="Nenhum registro encontrado."
					rendered="#{motoristaBean.veiculos != null}">
					<p:column headerText="Placa">
						<h:outputText value="#{veiculo.placa}" />
					</p:column>
					<p:column headerText="Marca">
						<h:outputText value="#{veiculo.modelo.marca.nome}" />
					</p:column>
					<p:column headerText="Modelo">
						<h:outputText value="#{veiculo.modelo.nome}" />
					</p:column>
					<p:column style="width: 32px;">
						<p:commandButton icon="ui-icon-plus" title="Adicionar" actionListener="#{motoristaBean.adicionarVeiculo(veiculo)}" update=":motoristaForm" ajax="false" />
					</p:column>
				</p:dataTable>
			</h:form>
		</p:dialog>
	</ui:define>
</ui:composition>

</html>